import qqMap from '../../../utils/qqmap'
// map.js
Page({
  data: {
    dialogVisible: false,
    // 实际上 markers 的信息是后端给的
    // 当然当前位置的经纬度可以自己获取
    markers: [{
        id: 1,
        // 学校
        latitude: 30.71326903396565, // 经度
        longitude: 114.40691808969243, // 纬度
        width: 24,
        height: 30,
      },
      {
        id: 2,
        // 下贩新苑
        latitude: 30.71317488159291,
        longitude: 114.39899701136655,
        iconPath: '/static/images/marker.png',
        width: 40,
        height: 40,
      },
    ],
  },
  onLoad({
    id
  }) {
    this.getRepairDetail(id)
    this.createPolyLine()
  },
  createPolyLine() {
    qqMap.direction({
      mode: 'bicycling',
      from: this.data.markers[1].latitude + ',' + this.data.markers[1].longitude,
      to: this.data.markers[0].latitude + ',' + this.data.markers[0].longitude,
      success: res => {
        // 拿到标记点 coors
        const coors = res.result.routes[0].polyline;
        // 最终的路线规划信息
        const pl = [];
        // 加工标记点信息
        for (var i = 2; i < coors.length; i++) {
          coors[i] = Number(coors[i - 2]) + Number(coors[i]) / 1000000;
        }
        // 讲加工好的信息怼到 pl 数组中
        for (var i = 0; i < coors.length; i += 2) {
          pl.push({
            latitude: coors[i],
            longitude: coors[i + 1]
          })
        }
        // 将加工好的信息设置到 polyline 变量
        this.setData({
          polyline: [{
            points: pl,
            color: '#FF0000DD',
            width: 4
          }]
        })
      }
    })
  },
  async getRepairDetail(id) {
    if (!id) return

    const {
      code,
      data: repairDetail
    } = await wx.http.get(`/repair/${id}`)
    if (code !== 10000) return wx.utils.toast('获取报修详情失败')

    this.setData({
      ...repairDetail
    })
  },
  // 点击取消报修按钮
  openDialogLayer() {
    this.setData({
      dialogVisible: true
    })
  },
  // 监听弹框的关闭
  dialogClose(ev) {
    if (ev.detail === 'confirm') this.cancelRepair()
  },
  async cancelRepair() {
    // put => 全量
    // patch => 打补丁
    const {
      code
    } = await wx.http.put(`/cancel/repaire/${this.data.id}`)
    if (code !== 10000) return wx.utils.toast('取消报修失败')
    wx.utils.toast('取消报修成功')
    wx.navigateBack()
  },
  editRepair() {
    wx.navigateTo({
      url: '/repair_pkg/pages/form/index?id=' + this.data.id,
    })
  }
})